package com.zmn.oms.common.dio.factory.order;

import com.zmn.oms.common.dio.normal.orderadd.OrderProductDIO;
import com.zmn.oms.common.dio.normal.orderadd.UserDIO;
import com.zmn.oms.common.dio.normal.OrderWorkBaseDIO;
import com.zmn.oms.common.dio.normal.orderadd.OrderWorkPostAddDIO;
import com.zmn.oms.common.dto.OrderWorkAddOperator;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

/**
 * 类描述: 新单厂商工单
 *
 * @author liuying
 * @date 2021-03-31
 */
@Data
@ToString(callSuper = true)
@ApiModel("厂商工单信息")
public class FactoryOrderWorkAddDIO extends OrderWorkAddOperator implements Serializable {

    private static final long serialVersionUID = 1338807923839050275L;

    @ApiModelProperty(value = "厂商ID", required = true)
    @NotNull(message = "厂商ID不能为空")
    private Integer factoryId;

    /**
     * 用户信息
     */
    @Valid
    @ApiModelProperty(value = "用户信息", required = true)
    @NotNull(message = "用户信息不能为空")
    private UserDIO userDIO;

    /**
     * 订单基础信息
     */
    @Valid
    @ApiModelProperty(value = "订单基础信息", required = true)
    @NotNull(message = "订单基础信息不能为空")
    private OrderWorkBaseDIO orderWorkBaseDIO;

    /**
     * 产品
     */
    @Valid
    @ApiModelProperty(value = "服务产品", required = true)
    @NotNull(message = "服务产品不能为空")
    private OrderProductDIO orderProductDIO;

    /**
     * 新机物流
     */
    @ApiModelProperty(value = "新机物流")
    private List<OrderWorkPostAddDIO> orderPostList;

    /**
     * 厂商配件快递信息
     */
    @ApiModelProperty(value = "厂商配件快递信息")
    private List<FactoryOrderWorkPartAddDIO> orderPartPostList;
}
